﻿import QtQuick 2.5


/*
  visible 默认为false，如果要显示，需要调用open()方法或者设置此属性为true

  selectExisting 默认为true 表示选择已有的文件或者文件夹，fase：用于创建文件或者文件夹名字

  selectFolder 默认为false, 表示选择文集那 true 表示文件夹

  selectMultiple 默认为false 单选， true 多选 当selectExstring为false时，selectMultiple 应该是false

  nameFilters 设定一个过滤器表，

  selectedNameFilter 保存用户选择的过滤器，或者用来设置初始的过滤器

  modality 默认值是 Qt.WindowModal.


  */

//修改图片浏览器中一次可以选择多个图片，也可以切换名字过滤器

import QtQuick.Controls 1.4

import QtQuick.Controls.Styles 1.4


import QtQuick.Window 2.0

import QtQuick.Dialogs 1.2

Rectangle {
    visible: true;
    width: 600;
    height: 480;

//    minimumWidth: 480;
//    minimumHeight: 380;

    BusyIndicator {
        id: busy;
        running: false;
        anchors.centerIn: parent;
        z: 2;
    }


    Text {
        id: stateLabel;
        visible: false;
        anchors.centerIn: parent;
        z: 3;

    }

    Image {
        id: imageViewer;
        asynchronous:  true;
        cache: false;
        anchors.fill: parent;
        fillMode: Image.PreserveAspectFit;

        onStatusChanged: {
            if(imageViewer.status == Image.Loading) {
                busy.running = true;
                stateLabel.visible =true;
                stateLabel.text = "error ";

            }
        }
    }

    Button {
        id: openFile;
        text: "Open";
        anchors.left: parent.left;
        anchors.margins: 8;
        anchors.bottom: parent.bottom;
        anchors.bottomMargin: 8;
        style: ButtonStyle {
            background:  Rectangle{
                implicitWidth: 70;
                implicitHeight: 25;
                color: (control.hovered || control.pressed) ? "red" : "white";
                border.width: (control.pressed) ? 3:1
                border.color: (control.hovered || control.pressed) ? "green":"blue";
            }
        }

//        style: ButtonStyle
//           {
//               background:Rectangle
//               {
//                   implicitHeight:openFile.height
//                   implicitWidth:openFile.width
//                   Image
//                   {
//                       anchors.fill: parent
//                       source:
//                       {
//                           if(control.hovered)
//                           {
//                               if(control.pressed)
//                               {
//                                   pressPic
//                               }
//                               else
//                               {
//                                   hoverPic
//                               }
//                           }
//                           else
//                           {
//                               nomerPic
//                           }
//                       }
//                   }
//               }
//           }


        onClicked: fileDialog.open();
        z:4;
    }

    Text {
        id: imagePaht;
        anchors.left: openFile.left;
        anchors.leftMargin: 8;
        anchors.bottom: parent.bottom;
        anchors.bottomMargin: 8;

        anchors.verticalCenter:  openFile.verticalCenter;

        font.pixelSize: 18;
    }

    FileDialog {
        id: fileDialog;
        title: "please choose a file";
        nameFilters: ["Image Files(*.jpg *.png *.git)",
                      "Bitmap File (*.bmp)",
                      "* (*.*)"];
        selectedNameFilter: "Image Files(*.jpg *.png *.gif)";
        selectMultiple: true;
        onAccepted: {
            imageViewer.source = fileDialog.fileUrls[0];
            var imageFile = new String(fileDialog.fileUrls[0]);
            imagePaht.text = imageFile.slice(8);
        }
    }

}


